package com.phaeton.beemeup.gui;

import java.util.ArrayList;

import org.andengine.entity.scene.CameraScene;
import org.andengine.entity.sprite.Sprite;

public class ItemBar extends CameraScene{
	private ArrayList<Sprite> slots;
	private ArrayList<Boolean> slotStatus;
	private int leftPadding = 10, buttonPadding = 10, topPadding = 15;
	
	public ItemBar(Sprite bar,Sprite slot1, Sprite slot2, Sprite slot3, Sprite slot4, Sprite slot5, Sprite slot6, Sprite slot7){
		super();

		this.setBackgroundEnabled(false);
		
		slots = new ArrayList<Sprite>();
		slots.add(slot1);
		slots.add(slot2);
		slots.add(slot3);
		slots.add(slot4);
		slots.add(slot5);
		slots.add(slot6);
		slots.add(slot7);
		
		slotStatus = new ArrayList<Boolean>();
		slotStatus.add(true);
		slotStatus.add(false);
		slotStatus.add(false);
		slotStatus.add(false);
		slotStatus.add(false);
		slotStatus.add(false);
		slotStatus.add(false);
		
		this.attachChild(bar);
		this.setTouchAreaBindingOnActionDownEnabled(true);
		build();
	}
	
	public void build(){
		for(int i = 0; i < slots.size(); i++){
			slots.get(i).setPosition((i==0) ? leftPadding : (slots.get(i-1).getX() + slots.get(i-1).getWidth()) + buttonPadding, topPadding);
			this.attachChild(slots.get(i));
			this.registerTouchArea(slots.get(i));
		}
	}
	
	public void rebuild(){
		this.postRunnable(new Runnable(){
			@Override public void run() {
				for(Sprite slot: slots){
					slot.detachSelf();
				}
				build();
			}
		});			
	}
	
	public void setSlot(int i, Sprite sprite){
		slots.set(i, sprite);
		rebuild();
	}
	
	public boolean getSlotActive(int i){
		return slotStatus.get(i);
	}
	
	public void setSlotActive(int i, boolean b){
		slotStatus.set(i, b);
	}
}
